home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / windows / xmdmdlp.zip / XMODEM.H < prev    next >
C/C++ Source or Header  |  1992-05-15  |  6KB  |  148 lines

  1. typedef struct tagPROTOSET{
  2. LPSTR dwnload;                      // pointer to download dir
  3. LPSTR upload;                       // pointer to upload dir
  4. BYTE FAR *aspfxfer;                 // pointer to aspect file xfer flag
  5. BYTE should_gif;                    // user wants gif files
  6. BYTE xfer_dup_new;                  // duplicate new files
  7. BYTE xfer_del_aborts;               // delete aborts
  8. BYTE xfer_relaxed;                  // relaxed timing
  9. LPSTR bigbuff;                      // fixed pointer to first 10240 bytes  of hPBits
  10. LPSTR bigptr;                       // variable pointer to bigbuf bytes
  11. LPSTR cbuff;                        // cbuff = bigbuff+10240, fixed pointer to last   1033 bytes of hPBits
  12. int bdiag;                          // flag set if XFER status dialog box is desired
  13. HWND hDlg1;                         // handle to XFER status dialog box
  14. int hCommFile;                      // handle to open xfer file
  15. LPSTR fileptr;                      // pointer to file data in hCommFile
  16. WORD fdate;                         // DOS file date format of hCommFile
  17. WORD fftime;                        // DOS file time format of hCommFile
  18. char szRcvFile[20];                 // Filename of received file (all but b-plus)
  19. char XferFile[128];                 // full pathname received file ( b-plus)
  20. char szFullPath[128];               // full pathname for every protocol
  21. char szTempDir[128];
  22. char szTempName[20];                // temp filename, used in ShowXferBox
  23. int errorcnt;                       // number of errors occured during xfer
  24. int nackcount;                      // number of time nack txed or recieved during xfer
  25. int blocksdone;                     // number of record blocks xfered
  26. int bCancel;                        // Flag for user desire to cancel xfer
  27. DWORD xwaittime;                    // timeout period for protocol xfers
  28. int xcount;                         // number of rcved record bytes on xfer
  29. DWORD flen;                         // total expected bytes of received file
  30. long tflen;
  31. DWORD runcnt;                       // total bytes of existing file, for calulating xfer rate (runcnt-tflen) is used
  32. int rec_len;                        // length of record
  33. int rec_no;                         // current rec_no being xfered
  34. int  (FAR PASCAL *FlushCommW)(int,int);
  35. int  (FAR PASCAL *ReadCommW)(int, LPSTR, int);
  36. int  (FAR PASCAL *WriteCommW)(int, LPSTR, int);
  37. int  (FAR PASCAL *GetCommErrorW)(int);
  38. int  (FAR PASCAL *SetCommBreakW)(int);
  39. int  (FAR PASCAL *ClearCommBreakW)(int);
  40. int  (FAR PASCAL *SetCommStateW)(DCB FAR *);
  41. int  (FAR PASCAL *GetCommStateW)(int, DCB FAR *);
  42. int  (FAR PASCAL *EscapeCommFunctionW)(int, int);
  43. int  (FAR PASCAL *UngetCommCharW)(int, char);
  44.  
  45. void  (FAR PASCAL *EndXfer)(void);               // End of xfer
  46. int   (FAR PASCAL *FeedDisplay)(BYTE);           // Feed gif viewer a byte
  47. void  (FAR PASCAL *startgif)(void);              // Start gif viewer
  48. void  (FAR PASCAL *ShowXferBox)(int);            // Display file xfer status box
  49. void  (FAR PASCAL *TimeToGo)(void);              // Update time of xfer in xfer status box
  50. void  (FAR PASCAL *StatusLineDirect)(LPSTR);     // Statusline funtion call
  51. int   setup;
  52. char  dll_auto[12];
  53.  
  54. //char temp[66];
  55.  
  56. int  datalen;
  57. int  Aborting;
  58. DWORD no_char_wait;
  59. int  retries;
  60. int  pcstate;
  61. int  bbegin;
  62. int  end_record;
  63. int  bpos;
  64. BYTE  crc;
  65. int  rcnt;
  66. char temp[45];
  67. }PROTOSET;
  68.  
  69. typedef struct tagMAIN{
  70. HWND hWnd;                          // Handle to rghWnd[MAINWIN]
  71. HANDLE hCid;                        // Handle to Open Comm Port
  72. COMSTAT comstat;                    // open comm status
  73. DCB dcb;                            // DCB of open comm port
  74. int gifstate;                       // switch state for online gif viewer
  75. HWND hSTATUSWnd;                    // Handle to Status window
  76. char szTempName[128];               // temp filename, used in ShowXferBox
  77. }MAIN;
  78.  
  79. typedef struct ADVANCEDSET
  80. {
  81.     UINT fRcvFileSelect        :1;      // default 0
  82.     UINT fSendFileSelect     :1;      // default 0
  83.     UINT fRecLength128      :1;      // default 0
  84.     UINT fChecksum           :1;      // default 0
  85.     UINT fDummy               :4;      // default 0
  86. } ADVANCEDSET;
  87.  
  88.  
  89. BOOL FAR PASCAL LibMain(HANDLE,WORD,WORD,LPSTR );
  90. WORD FAR PASCAL GET_DLL_CAPS( LPSTR );
  91. void FAR PASCAL ADVANCED_DLL( PROTOSET FAR *, MAIN FAR *, HWND, LPSTR );
  92. BOOL FAR PASCAL STARTDLL_XFER( PROTOSET FAR *, MAIN FAR *, HWND, LPSTR, int, int );
  93. int FAR PASCAL DLL_XFER( PROTOSET FAR *, MAIN FAR *, HWND, LPSTR, int );
  94. void FAR PASCAL WEP(int);
  95.  
  96. BOOL FAR PASCAL SetupDlgProc( HWND, WORD, WORD, LONG );
  97. void RXING(void);
  98. void WAITACK(void);
  99. void NOCHAR(void);
  100. void StartXRecord(int, LPSTR);
  101. int WaitingForAck(void);
  102. int GetXRecord(void);
  103. BOOL MoreCharacters(void);
  104. void ymodem_tx(void);
  105. void End_It(int);
  106. void StatusLine(WORD,LPSTR);
  107. void LastError(int);
  108. BOOL FileRxTX(int, LPSTR);
  109.  
  110.  
  111. extern FAR PASCAL getftime( int );
  112. extern FAR PASCAL getfdate( int );
  113.  
  114. #define SOH                     1
  115. #define STX                     2
  116. #define EOT                     4
  117. #define ACK                     6
  118. #define NAK                     21
  119. #define CANCEL                  24
  120.  
  121. #define IDX_WAITACK             1
  122. #define IDX_ACK                 2
  123. #define IDX_TERMINATE           3
  124. #define IDX_NOCHAR              4
  125. #define IDX_EOT                 5
  126. #define IDX_RXING               6
  127. #define IDX_TXING               7
  128.  
  129.  
  130. #define ID_ERR                  300
  131. #define ID_BLKNO                301
  132. #define ID_PERCENT              302
  133. #define ID_UARTERR              303
  134. #define ID_FILENAME             305
  135. #define IDS_LASTERROR           1300
  136. #define IDS_SETUP               1500
  137.  
  138. // dll protocol capabilities
  139. #define DLL_CAP_SHOWXFER      0x0020
  140. #define DLL_CAP_MULTISEND     0x0002
  141. #define DLL_CAP_AUTODOWNLOAD  0x0001
  142. #define DLL_CAP_PWOPENFILE    0x0004
  143. #define DLL_CAP_RCVNEEDNAME   0x0008
  144. #define DLL_CAP_ADVANCED      0x0080
  145.  
  146. #define ASP_PROT_SUCCESS   2
  147. #define ASP_PROT_FAIL      3
  148.